package org.ipb.controller.modul.penggunasistem;

import org.ipb.model.KelompokPengguna;
import org.ipb.model.PenggunaSistem;

import util.hibernate.DAO;
import util.secure.Enkripsi;

import com.opensymphony.xwork2.ActionSupport;

public class ActionJQGridCrud extends ActionSupport {
	private static final long serialVersionUID = -5933849517817526086L;
	private String id;
	private String userName;
	private String password;
	private String userAccess;
	private String kelompokPengguna;
	private String oper;

	public String getOper() {
		return oper;
	}

	public void setOper(String oper) {
		this.oper = oper;
	}

	public String execute() {
		if (getOper().equals("edit")) {
			return update();
		} else if (getOper().equals("add")) {
			return insert();
		} else {
			return delete();
		}
	}

	public String insert() {
		DAO<Integer> dao = new DAO<Integer>();
		PenggunaSistem insert = new PenggunaSistem();
		KelompokPengguna kelPengguna = new KelompokPengguna();
		kelPengguna.setId(Integer.valueOf(getKelompokPengguna()));
		insert.setKelompokPengguna(kelPengguna);
		insert.setUserName(getUserName());
		insert.setUserAccess(getUserAccess());
		Enkripsi enkripsi = new Enkripsi();
		insert.setPassword(enkripsi.md5(getPassword()));
		dao.insert(insert);
		dao.close();
		return SUCCESS;
	}

	public String update() {
		DAO<Integer> dao = new DAO<Integer>();
		PenggunaSistem update = (PenggunaSistem) dao.find(PenggunaSistem.class,
				Integer.valueOf(getId()));
		update.setUserName(getUserName());
		Enkripsi enkripsi = new Enkripsi();
		update.setPassword(enkripsi.md5(getPassword()));
		update.setUserAccess(getUserAccess());
		dao.update(update);
		dao.close();
		return SUCCESS;
	}

	public String delete() {
		DAO<Integer> dao = new DAO<Integer>();
		dao.delete(PenggunaSistem.class, Integer.valueOf(getId()));
		dao.close();
		return SUCCESS;
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String getKelompokPengguna() {
		return kelompokPengguna;
	}

	public void setKelompokPengguna(String kelompokPengguna) {
		this.kelompokPengguna = kelompokPengguna;
	}

	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public String getUserAccess() {
		return userAccess;
	}

	public void setUserAccess(String userAccess) {
		this.userAccess = userAccess;
	}
}
